package com.qwz.learn;

import java.util.ArrayList;
import java.util.Collection;

/**
* @Description: 对象结构，需要在这里对元素对进行遍历，让访问者能访问到所有的元素
* @Package com.qwz.learn.ObjectStructure
* @author Qiuwuzhi
* @date 2019/12/27 16:44
* @version V1.0
*/
public class ObjectStructure {

    /**
     * 表示对象结构，可以是一个组合结构或者集合
     */
    private Collection<Element> collection = new ArrayList<Element>();

    /**
     * 提供给客户端操作的高层接口
     * @param visitor
     */
    public void handleRequest(Visitor visitor){
        //循环对象结构中的元素，接受访问
        for (Element element:collection){
            element.accept(visitor);
        }
    }

    /**
     * 组建对象结构，向对象结构中添加元素
     * 不同的对象结构有不同的构建方式
     * @param element
     */
    public void addElement(Element element){
        this.collection.add(element);
    }

}
